#pragma once
#include "UltimateSubsystemRegistryPrerequisites.h"
#include "UltimatePhysicsActor.h"
#include "UltimatePhysicsActorDesc.h"
#include "UltimatePhysicsContactListener.h"

class _UltimateSubsystemRegistryExport UltimatePhysicsScene
{
public:


	//virtual void addContactRecord(int group1, int group2)=0;
	virtual bool initScene()=0;
	virtual UltimatePhysicsActor * createPhysicsActor(UltimatePhysicsActorDesc *desc,Ogre::Vector3 position, Ogre::Quaternion orientation, bool isKinematic, bool isStatic, int collisionGroup, int weight=1)=0;
	virtual void destroyPhysicsActor(UltimatePhysicsActor* actor)=0;
	virtual UltimatePhysicsActorDesc * createPhysicsActorDesc()=0;
	virtual void createPhysicsPlane(int height,int collisionGroup)=0;
	virtual void setGravity(int x, int y, int z)=0;
	virtual void addContactListener(UltimatePhysicsContactListener* listener)=0;

	virtual void stepSimulation(float elapsedTime)=0;
	
	UltimatePhysicsScene(void);
	virtual ~UltimatePhysicsScene(void);
	
};

